Generating a Proxy DLL and a Type Library From a Single IDL File

You can use a single IDL file to generate both the proxy stubs and header files for marshaling code, and a type library. You do this by defining an interface outside the library block and then referencing that interface from inside the library block, as shown in this example:

//file: AllKnown.idl

 

[object, uuid(. . .), <other interface attributes>]

interface IKnown : IUnknown { 

import  unknwn.idl 

<declarations, etc. for IKnown interface go here>

};

 

[<library attributes>]library KnownLibrary { 

 

//reference interface IKnown:

interface IKnown;

 

//or create a new class:

  [<coclass attributes>] coclass KnowMore { 

   interface IKnown;

  };

};

 

See Also

Marshaling OLE Data Types, Additional Files Required To Generate a Type Library